Embedding Quadtree Matrices in a Lazy Functional Language ∗

نویسندگان

  • MICHAEL RAINEY
  • Michael Rainey
  • David S. Wise
چکیده

A technique for supporting quadtree matrices in a lazy functional langauge is presented that ameliorates tensions between performance and purity. In large matrix computations the facility to update in-place is a requisite for high performance. Thus, techniques for applying safe side effects to quadtree matrices are presented. Performance enhancements come via intrinsic properties of quadtree matrices, e.g., locality of reference. The expressiveness of quadtree matrix algorithms is enhanced by the tools of the higher-order, typed language, Haskell. Matrix-matrix multiply and Cholesky factorization are provided with time comparisons to C. In contrast to our earlier work, the protocol is convenient even for Fortran programmers and its performance scales nicely and compares well with Fortran enough to demonstrate that lazy languages can compete.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Post-design Domain-Specific Language Embedding: A Case Study in the Software Engineering Domain

Experiences are presented from a new case study of embedding domain-specific languages in the lazy functional language Haskell. The domain languages come from the Odin software build system. Thus, in contrast to most previous embedding projects, a design and implementation of the domain languages existed when the project began. Consequently, the design could not be varied to suit the target lan...

متن کامل

A Proof Tool for Reasoning About Functional Programs

This paper describes a system to support reasoning about lazy functional programs. We describe an approach based on combining a deep embedding of the language in HOL and a set of proof tools to raise the level of interaction with the theorem prover. This approach allows meta-theoretic reasoning about the semantics and reasoning about unde-ned programs while still supporting practical reasoning ...

متن کامل

Lazy Assertions

Assertions test expected properties of run-time values without dissrupting the normal working of a program. So in a lazy functional language assertions should be lazy — not forcing evaluation, but only examining what is evaluated by other parts of the program. We describe two different ways of embedding lazy assertions in Haskell, one sequential and the other concurrent. Examples illustrate the...

متن کامل

CTy: a Haskell DSL for Specifying and Generating Combinatoric Test-cases

The Classification Tree Method (CTM) is a popular approach in functional testing. It allows testers to systematically partition the input domains of a target program, and specifies the combinations they want. This paper presents an implementation of CTM as a domain specific language (DSL) embedded in a functional language Haskell. Such an implementation is lean, but very powerful. It furthermor...

متن کامل

Concurrent Programming in Haskell

In this paper, an extension of the non-strict functional language Haskell 3] is presented. It performs the evaluation of expressions by using multiple threads. The synchronous model and the event interface used are similar to Reppy's CML 11], but in this case we must deal with new factors like non-strictness, embedding the synchronous operations into the IO monad. Lazy structures are useful to ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004